home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Toolbox / Visual Basic Toolbox (P.I.E.)(1996).ISO / listbox / listtab / listdemo.frm < prev    next >
Text File  |  1995-11-27  |  9KB  |  300 lines

  1. VERSION 4.00
  2. Begin VB.Form frmListDemo 
  3.    Appearance      =   0  'Flat
  4.    BackColor       =   &H80000005&
  5.    Caption         =   "List Control Demo"
  6.    ClientHeight    =   4800
  7.    ClientLeft      =   2280
  8.    ClientTop       =   1650
  9.    ClientWidth     =   5760
  10.    BeginProperty Font 
  11.       name            =   "MS Sans Serif"
  12.       charset         =   1
  13.       weight          =   700
  14.       size            =   8.25
  15.       underline       =   0   'False
  16.       italic          =   0   'False
  17.       strikethrough   =   0   'False
  18.    EndProperty
  19.    ForeColor       =   &H80000008&
  20.    Height          =   5205
  21.    Left            =   2220
  22.    LinkTopic       =   "Form1"
  23.    ScaleHeight     =   4800
  24.    ScaleWidth      =   5760
  25.    Top             =   1305
  26.    Width           =   5880
  27.    Begin VB.TextBox txtSearch 
  28.       Appearance      =   0  'Flat
  29.       Height          =   285
  30.       Left            =   240
  31.       TabIndex        =   1
  32.       Top             =   360
  33.       Width           =   5295
  34.    End
  35.    Begin VB.CommandButton cmdExit 
  36.       Appearance      =   0  'Flat
  37.       BackColor       =   &H80000005&
  38.       Caption         =   "E&xit"
  39.       Height          =   495
  40.       Left            =   3000
  41.       TabIndex        =   8
  42.       Top             =   4080
  43.       Width           =   2535
  44.    End
  45.    Begin VB.ListBox lstFonts 
  46.       Appearance      =   0  'Flat
  47.       Height          =   1200
  48.       Left            =   240
  49.       Sorted          =   -1  'True
  50.       TabIndex        =   6
  51.       Top             =   3360
  52.       Width           =   2535
  53.    End
  54.    Begin VB.TextBox txtListHeadings 
  55.       Appearance      =   0  'Flat
  56.       BorderStyle     =   0  'None
  57.       Enabled         =   0   'False
  58.       ForeColor       =   &H00C00000&
  59.       Height          =   255
  60.       Left            =   240
  61.       MultiLine       =   -1  'True
  62.       TabIndex        =   4
  63.       Text            =   "LISTDEMO.frx":0000
  64.       Top             =   1440
  65.       Width           =   855
  66.    End
  67.    Begin VB.CommandButton cmdSetColumns 
  68.       Appearance      =   0  'Flat
  69.       BackColor       =   &H80000005&
  70.       Caption         =   "(set columns)"
  71.       Height          =   495
  72.       Left            =   3000
  73.       TabIndex        =   7
  74.       Top             =   3480
  75.       Width           =   2535
  76.    End
  77.    Begin VB.ListBox lstFruits 
  78.       Appearance      =   0  'Flat
  79.       BeginProperty Font 
  80.          name            =   "MS Sans Serif"
  81.          charset         =   1
  82.          weight          =   700
  83.          size            =   9.75
  84.          underline       =   0   'False
  85.          italic          =   0   'False
  86.          strikethrough   =   0   'False
  87.       EndProperty
  88.       Height          =   1230
  89.       Left            =   240
  90.       Sorted          =   -1  'True
  91.       TabIndex        =   5
  92.       Top             =   1800
  93.       Width           =   5295
  94.    End
  95.    Begin VB.ComboBox cboSelect 
  96.       Appearance      =   0  'Flat
  97.       Height          =   300
  98.       Left            =   240
  99.       Sorted          =   -1  'True
  100.       Style           =   2  'Dropdown List
  101.       TabIndex        =   3
  102.       Top             =   1080
  103.       Width           =   5295
  104.    End
  105.    Begin VB.Label lblSearch 
  106.       Appearance      =   0  'Flat
  107.       BackColor       =   &H80000005&
  108.       Caption         =   "Search:"
  109.       ForeColor       =   &H80000008&
  110.       Height          =   255
  111.       Left            =   240
  112.       TabIndex        =   0
  113.       Top             =   120
  114.       Width           =   1455
  115.    End
  116.    Begin VB.Label lblSelect 
  117.       Appearance      =   0  'Flat
  118.       BackColor       =   &H80000005&
  119.       Caption         =   "Select:"
  120.       ForeColor       =   &H80000008&
  121.       Height          =   255
  122.       Left            =   240
  123.       TabIndex        =   2
  124.       Top             =   840
  125.       Width           =   1455
  126.    End
  127. End
  128. Attribute VB_Name = "frmListDemo"
  129. Attribute VB_Creatable = False
  130. Attribute VB_Exposed = False
  131. Option Explicit
  132.  
  133. 'Updated 01/06/95 - DULIST.BAS Fixes and Enhancements
  134. '
  135. '                   dulist_tfSetListCols
  136. '                   --------------------
  137. '                   Fixed bug that caused an endless
  138. '                   loop if the last character of a
  139. '                   listbox item string was a Chr$(9) tab.
  140. '
  141. '                   dulist_sGetColumn
  142. '                   -----------------
  143. '                   New routine to extract data, by column,
  144. '                   from a tab-delimited string.
  145. '
  146. '                   dulist_AddHorizScrollBar
  147. '                   ------------------------
  148. '                   New routine to add a horizontal
  149. '                   scrollbar to a listbox.
  150.  
  151.  
  152. 'If you have questions, comments, or suggestions for
  153. 'improving the code presented here, please forward them
  154. 'to me; your input is welcome:
  155. '
  156. '        Brad Kaenel
  157. '        PC HELP-LINE
  158. '        35250 Silver Leaf Circle
  159. '        Yucaipa, CA  92399
  160. '        United States
  161. '        CIS: 72357,3523
  162. '        Internet: 72357.3523@compuserve.com
  163. '
  164.  
  165. 'Although multi-column listboxes are a common
  166. 'requirement, they are difficult to accomplish
  167. 'in VB.
  168.  
  169. 'A simple solution is to select a mono-spaced
  170. 'font for the listbox and align the data manually,
  171. 'but this is not always visually appealing.  However,
  172. 'with a little more work you can set dynamic tabstops
  173. 'that will work with proportional fonts.
  174.  
  175. 'This sample demonstrates how to set tabstops in a listbox,
  176. 'using a borderless, disabled text box for the column
  177. 'headings.  It also shows how to "pre-select" a listbox
  178. 'or combobox item, using Windows API functions.
  179.  
  180. Dim sFruit(10) As String, sMyFruit As String
  181. Dim nTabStopsSet As Integer
  182.  
  183. Private Sub cboSelect_Click()
  184.  
  185. sMyFruit = cboSelect.Text
  186.  
  187. txtSearch.Text = sMyFruit  'synchronize the textbox
  188. Call SelectFruit           'synchronize the listbox
  189.  
  190. End Sub
  191.  
  192. Private Sub cmdExit_Click()
  193.  
  194. Unload frmListDemo
  195.  
  196. End Sub
  197.  
  198. Private Sub cmdSetColumns_Click()
  199.  
  200. Call SetTabStops
  201.  
  202. End Sub
  203.  
  204. Private Sub Form_Load()
  205.  
  206. Dim nFruitCount As Integer
  207. Dim sTAB As String
  208. sTAB = Chr$(9)
  209.  
  210.  
  211. 'add a horiz scrollbar
  212.  
  213. Call dulist_AddHorizScrollBar(lstFruits, 0)
  214.  
  215.  
  216. 'load up some multi-column data
  217.  
  218. txtListHeadings.Text = "Fruit" + sTAB + "Opinion" + sTAB + "Color"
  219.  
  220. sFruit(1) = "Oranges" + sTAB + "Good" + sTAB + "Orange, of course"
  221. sFruit(2) = "Bananas" + sTAB + "Munchy" + sTAB + "Yellow"
  222. sFruit(3) = "Apples" + sTAB + "Delicious" + sTAB + "Red"
  223. sFruit(4) = "Blueberries" + sTAB + "Nah" + sTAB + "Blue"
  224. sFruit(5) = "Plums" + sTAB + "Better than prunes" + sTAB + "Purple"
  225. sFruit(6) = "Watermelons" + sTAB + "Marvelous" + sTAB + "Red and Green"
  226. sFruit(7) = "Cherries" + sTAB + "Ummm..." + sTAB + "Bright Red"
  227. sFruit(8) = "Mangos" + sTAB + "Juicy" + sTAB + "No idea"
  228. sFruit(9) = "Kiwis" + sTAB + "Kinda weird" + sTAB + "Fuzzy Green"
  229. sFruit(10) = "Peaches" + sTAB + "OK" + sTAB + "Peach, I guess(?)"
  230.  
  231. For nFruitCount = 1 To UBound(sFruit)
  232.    lstFruits.AddItem sFruit(nFruitCount)
  233.    
  234.    'comboboxes don't support tabstops, so use only the first column string
  235.  
  236.    cboSelect.AddItem dulist_sGetColumn(sFruit(nFruitCount), 1)
  237. Next
  238.  
  239. For nFruitCount = 0 To Screen.FontCount - 1
  240.    lstFonts.AddItem Screen.Fonts(nFruitCount)
  241. Next
  242.  
  243. nTabStopsSet = True
  244. cmdSetColumns.Value = True  'trigger tab stops
  245.  
  246. End Sub
  247.  
  248. Private Sub lstFonts_Click()
  249.  
  250. lstFruits.FontName = lstFonts.List(lstFonts.ListIndex)
  251. lstFruits.Height = (lstFonts.Top - lstFruits.Top) - 20
  252.  
  253. nTabStopsSet = Not nTabStopsSet
  254. cmdSetColumns.Value = True  'trigger tab stops
  255.  
  256. End Sub
  257.  
  258. Private Sub lstFruits_Click()
  259.  
  260. sMyFruit = dulist_sGetColumn((lstFruits.List(lstFruits.ListIndex)), 1)
  261.  
  262. txtSearch.Text = sMyFruit  'synchronize the textbox
  263. Call SelectFruit           'synchronize the combobox
  264.  
  265. End Sub
  266.  
  267. Private Sub SelectFruit()
  268.  
  269. If dulist_tfSelectListItem(lstFruits, sMyFruit) Then
  270.    If dulist_tfSelectListItem(cboSelect, sMyFruit) Then
  271.    End If
  272. End If
  273.  
  274. End Sub
  275.  
  276. Private Sub SetTabStops()
  277.  
  278. If nTabStopsSet Then
  279.    If dulist_tfSetListCols(lstFruits, txtListHeadings, False, True) Then
  280.       cmdSetColumns.Caption = "Set &Custom Tab Stops"
  281.       nTabStopsSet = Not nTabStopsSet
  282.    End If
  283. Else
  284.    If dulist_tfSetListCols(lstFruits, txtListHeadings, False, False) Then
  285.       cmdSetColumns.Caption = "Reset &Default Tab Stops"
  286.       nTabStopsSet = Not nTabStopsSet
  287.    End If
  288. End If
  289.  
  290. End Sub
  291.  
  292. Private Sub txtSearch_Change()
  293.  
  294. sMyFruit = txtSearch.Text
  295.  
  296. Call SelectFruit           'synchronize the listbox
  297.                            'and the combobox
  298. End Sub
  299.  
  300.